"""
日志输出配置
"""
import os
import logging
from logging.handlers import RotatingFileHandler  # 配置logging输出格式


def logging_conf(app):
    log_dir = os.path.join(app.root_path, "user_logs")  # os.path.dirname()
    """ 初始化配置app应用对象 """
    if not os.path.exists(log_dir):
        os.makedirs(log_dir)
    app.logger.setLevel(logging.INFO)  # 配置日志级别
    """
    配置日志输出格式:1、日志的时间，2、当前执行程序名，3、当前函数，4、当前行号，5、线程id，6、线程名称，7、进程id，8、插入日志信息
    """
    formatter = logging.Formatter('%(asctime)s - %(filename)s -%(funcName)s - %(lineno)s - %(thread)d - %('
                                  'threadName)s - %(process)d - %(message)s')
    # 设置日志文件最大尺寸和备份数量
    # 最大尺寸为10M，当超过10M产生备份文件，最多产生10个备份文件，10个备份文件全部存满后，会开始覆盖之前的文件
    file_handler = RotatingFileHandler(os.path.join(log_dir, 'user.log'), maxBytes=10 * 1024 * 1024, backupCount=10)
    file_handler.setFormatter(formatter)
    file_handler.setLevel(logging.INFO)
    app.logger.addHandler(file_handler)
